/**
 * linkrfiframe.h
 *
 * data link layer radio frequency interface frame structrue.
 *
 * Copyright (c) sti-seedclass 2011, tankery.chen@gmail.com
 */
#ifndef __LINK_RFI_FRAME_H_
#define __LINK_RFI_FRAME_H_

enum FrameType {
    LINK_RFI_DATA   = 0x7E,
    LINK_RFI_ACK    = 0x7F
};

#define DATA_SIZE       8
#define DATA_FRAME_SIZE (DATA_SIZE + 8)
#define ACK_FRAME_SIZE  3


// Macro for frame access.
#define LINK_RFI_FRAME_TYPE_BYTE(frame) frame[0]
#define LINK_RFI_FRAME_SEQ_BYTE(frame) frame[1]
#define LINK_RFI_FRAME_DES_BYTE(frame) frame[2]
#define LINK_RFI_FRAME_SRC_BYTE(frame) frame[3]
#define LINK_RFI_FRAME_DATA_LENGTH(frame) DATA_SIZE
#define LINK_RFI_FRAME_DATA_POINTER(frame) (frame+4)
#define LINK_RFI_FRAME_CRC_BYTE(frame) frame[DATA_FRAME_SIZE - 1]

#endif // __LINK_RFI_FRAME_H_

